package com.ecnu.system.domain;

import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import java.io.Serializable;
import java.time.LocalDate;
import java.time.LocalDateTime;
import java.util.Date;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.annotation.JsonIgnore;
import io.swagger.annotations.ApiModelProperty;
import lombok.Getter;
import lombok.Setter;

import javax.validation.constraints.NotBlank;

/**
 * <p>
 * ecnu_活动_阶段任务表
 * </p>
 *
 * @author zdn
 * @since 2025-03-30
 */
@Getter
@Setter
@TableName("project_stage_mission")
public class ProjectStageMission implements Serializable {

    private static final long serialVersionUID = 1L;

    @TableId("id")
    @ApiModelProperty(value = "任务编号")
    private String id;

    /**
     * 阶段id
     */
    @TableField("stage_id")
    @ApiModelProperty(value = "活动ID")
    @NotBlank(message = "活动编号不能为空")
    private String stageId;

    /**
     * 任务名
     */
    @TableField("mission_name")
    @ApiModelProperty(value = "任务名称")
    @NotBlank(message = "任务名称不能为空")
    private String missionName;

    /**
     * 截止时间
     */
    @TableField("end_time")
    @ApiModelProperty(value = "截止日期")
    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
    private Date endTime;

    /**
     * 开始时间
     */
    @TableField("start_time")
    @ApiModelProperty(value = "开始日期")
    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
    private Date startTime;

    /**
     * 学习资料（json格式，前端怎么传，就怎么存）
     */
    @TableField("information")
    @JsonIgnore
    @ApiModelProperty(value = "学习资料（前端怎么传，就怎么存）")
    private String information;

    /**
     * 软件工具（按照计划方式回传）
     */
    @TableField("tool")
    @JsonIgnore
    @ApiModelProperty(value = "软件工具（前端怎么传，就怎么存）")
    private String tool;

    @TableField("sort")
    @ApiModelProperty(value = "序号")
    private Integer sort;

    /**
     * 任务清单（json格式，前端怎么传，就怎么存）
     */
    @TableField("check_list")
    @JsonIgnore
    @ApiModelProperty(value = "任务清单")
    private String checkList;

    /**
     * 描述
     */
    @TableField("description")
    @ApiModelProperty(value = "描述")
    private String description;

    /**
     * 描述
     */
    @TableField("target")
    @ApiModelProperty(value = "能力测量指标")
    private String target;

    /**
     * 是否删除（0正常，2删除）
     */
    @TableField("del_flag")
    @JsonIgnore
    private String delFlag;

    /**
     * 创建时间
     */
    @TableField("create_time")
    @JsonIgnore
    private LocalDateTime createTime;

    /**
     * 修改时间
     */
    @TableField("update_time")
    @JsonIgnore
    private LocalDateTime updateTime;


}
